Home / JagoanSiber CTF / SIEM Analysis
JagoanSiber - SOC Analyst CTF SIEM Analysis

SIEM Analysis

Dive into Splunk SIEM logs to investigate the security incident. These challenges test your ability to craft SPL queries, analyze log data, and identify indicators of compromise across authentication logs, network traffic, process execution records, and more.

6 Challenges
6/6 Solved
1200 Total Points

Challenges in this Category

Challenge

Scenario: Flexis AI's security team detected suspicious activity on February 2nd, 2026. Your task is to identify the primary attacker IP address that initiated the breach.
Flag Format: SOC{IP_ADDRESS}
Example: SOC{192.168.1.100}

Investigation Tools:
  • Splunk Enterprise: http://158.69.63.162:8001
  • Index: main
  • Host: flexis-app-01
Investigation Tips:
  • Look for suspicious authentication attempts in auth.log
  • Check for unusual SSH connections
  • Identify IP addresses with multiple failed login attempts followed by successful ones
  • Review firewall logs for outbound connections to suspicious IPs

Solution

Disini team keamanan dari Flexis AI mendeteksi adanya aktivitas mencurigakan pada tanggal 2 Februari 2026. Tugas kita adalah mengidentifikasi alamat IP penyerang utama yang memulai pelanggaran tersebut menggunakan Splunk.

Pertama, kita perlu mengidentifikasi log yang relevan dengan aktivitas mencurigakan. Dalam kasus ini, kita akan fokus pada log otentikasi SSH karena seringkali menjadi target serangan. Kita dapat menggunakan query berikut untuk memfilter log yang berkaitan dengan SSH:

Query
source="auth.log" sshd
                        
SSH Event

Figure 1: Menampilkan Semua SSH Event

Setelah menjalankan query tersebut, kita akan melihat hasil yang menunjukkan semua event yang berkaitan dengan SSH. Selanjutnya, kita perlu mengidentifikasi alamat IP penyerang utama yang memulai pelanggaran. Kita dapat menggunakan query berikut untuk mengidentifikasi alamat IP penyerang utama:

Query
source="auth.log" "Accepted publickey"
| rex "from (?\d+\.\d+\.\d+\.\d+)"
| stats count by ip
| sort -count

                        
IP Address dan Jumlah Koneksi SSH

Figure 2: Menampilkan IP Address dan Jumlah Koneksi SSH

Dari hasil query tersebut, kita dapat melihat bahwa alamat IP penyerang utama adalah 107.21.146.177 dengan jumlah koneksi SSH sebanyak 265 kali.

Flag
SOC{107.21.146.177}

Challenge

Scenario: After gaining initial access, the attacker established a reverse shell connection. Identify the TCP port number used for this persistent backdoor.
Flag Format: SOC{PORT}

Investigation Tips:
  • Review firewall logs for outbound connections to the attacker IP
  • Look for unusual high-numbered ports (above 1024)
  • Check for persistent connections that remain open
  • Analyze network traffic patterns for C2-like behavior

Solution

Sebelumnya kita sudah mengetahui IP Address dari attacker yaitu 107.21.146.177. Fokus kita sekarang adalah mengetahui port yang digunakan oleh attacker untuk mengeksekusi reverse shell. Disini saya mencoba mengidentifikasi firewall.log dengan query berikut:

Query
source="firewall.log"
| search "107.21.146.177"
| stats count by port
| sort -count

                        
Port yang digunakan oleh attacker

Figure 3: Menampilkan Port yang digunakan oleh attacker

Dari hasil query tersebut, kita dapat melihat beberapa event dari source = firewall.log Salah Satu event tersebut adalah

ALLOW OUT: 160.187.165.218 → 107.21.146.177:1913 TCP Service: Reverse Shell
                        
yang dapat kita simpulkan bahwa port yang digunakan oleh attacker adalah 1913.

Flag
SOC{1913}

Challenge

Scenario: The attacker deployed a cryptocurrency miner on the compromised server. Identify the mining pool domain they connected to for mining operations.
Flag Format: SOC{domain.tld}

Investigation Tips:
  • Check firewall logs for DNS queries
  • Look for connections to unusual domains
  • Mining pools often use specific port numbers (3333, 8000, 8080)
  • Review network traffic for sustained connections

Solution

Dari scenario tersebut, kita perlu mengetahui domain yang digunakan oleh attacker untuk mengeksekusi mining pool. biasanya miner memiliki port khas yaitu 3333, 8000, 8080 dan komunikasi yang rutin. kita perlu mencari semua kemungkinan mining di source firewall.log dengan query berikut:

Query
source="firewall.log" (3333 OR 8000 OR 8080)
                        
Port yang digunakan oleh attacker

Figure 4: Menampilkan Port yang digunakan oleh attacker

Dari hasil query tersebut menampilkan koneksi yang berulang dari source firewall.log

ALLOW OUT: 160.187.165.218:53347 → 45.204.197.103:8000 TCP Service: Crypto Mining
                        
Karena soal meminta domain, maka dilakukan pencarian DNS yang mengarah ke IP tersebut dengan query berikut:

Query
45.204.197.103 AND ("dns" OR "resolve" OR "query")
                        
Event DNS

Figure 5: Menampilkan Event DNS

Bisa dilihat dari gambar diatas saya menemukan event

DNS lookup: shd30.com → 45.204.197.103
                        
event ini muncul berulang kali dan waktunya berdekatan dengan aktivitas koneksi mining dan kita bisa menyimpulkan bahwa domain tersebut adalah domain mining pool yang digunakan adalah shd3o.com

Flag
SOC{shd3o.com}

Challenge

Scenario: Complete your mining infrastructure analysis by identifying the specific port number used to communicate with the mining pool.
Flag Format: SOC{portnumber}

Solution

Dari temuan sebelumnya yang kita punya dari event firewall

ALLOW OUT: 160.187.165.218:53347 → 45.204.197.103:8000 TCP Service: Crypto Mining
                        

Kita bisa menyimpulkan bahwa port yang digunakan untuk berkomunikasi dengan mining pool adalah 8000

Flag
SOC{8000}

Challenge

Scenario: The attacker dropped a malicious binary on the system. Identify the full path where this binary was installed.
Flag Format: SOC{/path/to/file.ext}

Investigation Tips:
  • Look for binaries installed to /usr/local/bin or /tmp or /var/tmp
  • Malicious binaries often have generic names

Solution

Pada skenario ini, kita perlu mengidentifikasi lokasi file binary yang diinstal oleh penyerang Setelah reverse shell & mining, penyerang pasti akan mendownload file binary untuk melakukan aktivitas jahatnya biasanya di folder /tmp atau /var/tmp dan namanya sering dibuat mirip dengan sistem agar tidak mudah terdeteksi. Kita dapat menggunakan query berikut untuk memfilter log:

KQL

(source="bash.log" OR source="syslog" OR source="audit.log") 
(wget OR curl OR chmod OR "./")

                        
Event Executable Hunt

Figure 6: Hasil QueryExecutable Hunt

Dari hasil query tersebut, Saya menemukan delivery mechanism yang digunakan oleh penyerang yaitu dengan menggunakan curl untuk mendownload script dan langsung mengeksekusinya di memori. Langkah selanjutnya kita harus mencari file yang dibuat setelah cs2.sh jalan. Saya menggunakan query berikut:

KQL

source="*" ("/tmp/" OR "/var/tmp/" OR "/usr/local/bin/")
                        
lokasi umum malware

Figure 7: Hasil Query Lokasi umum malware

Betul dugaan saya sebelumnya saya menemukan


/tmp/system-check

                        
yang berulang kali muncul kenapa bisa di simpulkan bahwa ini pasti binary attacker? karena berada di /tmp dimana ini adalah lokasi favorit malware

Flag
SOC{/tmp/system-check}

Challenge

Scenario: The attacker successfully compromised a user account on the system. Identify the username of the initially compromised account.
Flag Format: SOC{username}

Solution

Soal kali ini kita diminta untuk mencari username yang pertama kali di kompromi oleh attacker.Bukan siapa yang dibuat setelahnya. Bukan service account. Tapi akun yang pertama kali masuk. Dari investigasi saya sebelumnya saya sudah menemukan event


Accepted publickey for devops from 107.21.146.177
                        

Dari sini kita sudah tahu bahwa akun yang pertama kali di kompromi adalah devops. Kenapa saya menyimpulkan ini benar karena setelah itu muncul

  • reverse shell
  • cron job
  • download miner
  • binary /tmp/system-check
semuanya berawal dari login ini

Flag
SOC{devops}